# *-*- coding:utf-8 -*-
# @Author  : Eliza
# @Time    : 2021/7/18 15:51
# @Software : RubyMine

arr = %w(a b c)
arr.each { |value| p value }
puts "-----------------"

puts arr.map(&:capitalize)
puts "----arr-------------"

puts arr #原来的 arr 不会变
puts "-----------------"

puts "a".capitalize
puts arr.map { |value| value.capitalize }
puts "-------Proc.new----------"

p = Proc.new { |x, y| p x, y }
p.call(1) # 1 nil
p.call(1, 2) # 1 2
p.call(1, 2, 3) #1 2 ，第三个自动忽略
puts "-------lambda { |x, y| p x, y }----------"

l = lambda { |x, y| p x, y }
# l.call(1)#报错
l.call(1, 2)
# l.call(1, 2, 3) #报错
#Difference 2: flow control
#
puts "-----p1 = Proc.new { |x| return if x > 0 }----"

p1 = Proc.new { |x| return if x > 0 }#像block
p1.call(1)
puts "---l1 = lambda.new { |x| return if x > 0 }---"

l1 = lambda.new { |x| return if x > 0 }#像method
l1.call(1)
